-- XSD schema extracted from ITU-T Z.151 (11/2008)

<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!-- == XML Schema for the User Requirements Notation (Recommendation ITU-T Z.151) == Version: 20120112 --> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified"> <!-- ========================== --> <!-- ===== Root Element ===== --> <!-- ========================== --> <xsd:element name="URNspec" type="URNspec"/> <!-- ================================================== --> <!-- ============ Simple Type Definitions ============ --> <!-- ================================================== --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- ComponentKind --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:simpleType name="ComponentKind"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="Team"/> <xsd:enumeration value="Object"/> <xsd:enumeration value="Process"/> <xsd:enumeration value="Agent"/> <xsd:enumeration value="Actor"/> </xsd:restriction> </xsd:simpleType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- ContributionType --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:simpleType name="ContributionType"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="Make"/> <xsd:enumeration value="Help"/> <xsd:enumeration value="SomePositive"/> <xsd:enumeration value="Unknown"/> <xsd:enumeration value="SomeNegative"/> <xsd:enumeration value="Hurt"/> <xsd:enumeration value="Break"/> </xsd:restriction> </xsd:simpleType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- DatatypeKind --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:simpleType name="DatatypeKind"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="Boolean"/> <xsd:enumeration value="Integer"/> <xsd:enumeration value="Enumeration"/> </xsd:restriction> </xsd:simpleType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- DecompositionType --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:simpleType name="DecompositionType"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="AND"/> <xsd:enumeration value="XOR"/> <xsd:enumeration value="IOR"/> </xsd:restriction> </xsd:simpleType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- DeviceKind --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:simpleType name="DeviceKind"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="Processor"/> <xsd:enumeration value="Disk"/> <xsd:enumeration value="DSP"/> </xsd:restriction> </xsd:simpleType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- ImportanceType --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:simpleType name="ImportanceType"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="High"/> <xsd:enumeration value="Medium"/> <xsd:enumeration value="Low"/> <xsd:enumeration value="None"/> </xsd:restriction> </xsd:simpleType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- IntentionalElementType --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:simpleType name="IntentionalElementType"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="Softgoal"/> <xsd:enumeration value="Goal"/> <xsd:enumeration value="Task"/> <xsd:enumeration value="Resource"/> <xsd:enumeration value="Belief"/> </xsd:restriction> </xsd:simpleType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- QualitativeLabel --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:simpleType name="QualitativeLabel"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="Denied"/> <xsd:enumeration value="WeaklyDenied"/> <xsd:enumeration value="WeaklySatisfied"/> <xsd:enumeration value="Satisfied"/> <xsd:enumeration value="Conflict"/> <xsd:enumeration value="Unknown"/> <xsd:enumeration value="None"/> </xsd:restriction> </xsd:simpleType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- TimeUnit --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:simpleType name="TimeUnit"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="year"/> <xsd:enumeration value="day"/> <xsd:enumeration value="h"/> <xsd:enumeration value="s"/> <xsd:enumeration value="ms"/> <xsd:enumeration value="us"/> <xsd:enumeration value="ns"/> </xsd:restriction> </xsd:simpleType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- WaitKind --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:simpleType name="WaitKind"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="Transient"/> <xsd:enumeration value="Persistent"/> </xsd:restriction> </xsd:simpleType> <!-- ================================================== --> <!-- ============ Complex Type Definitions =========== --> <!-- ================================================== --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- ActiveResource --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="ActiveResource"> <xsd:complexContent> <xsd:extension base="GeneralResource"> <xsd:sequence> <xsd:element name="opTime" type="xsd:string"/> <xsd:element default="ms" name="unit" type="TimeUnit"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- Actor --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="Actor"> <xsd:complexContent> <xsd:extension base="GRLLinkableElement"> <xsd:sequence> <xsd:element maxOccurs="unbounded" minOccurs="0" name="collapsedRefs" type="xsd:IDREF"/> <!-- CollapsedActorRef --> <xsd:element maxOccurs="unbounded" minOccurs="0" name="actorRefs" type="xsd:IDREF"/> <!-- ActorRef --> <xsd:element minOccurs="0" name="style" type="ConcreteStyle"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="elems" type="xsd:IDREF"/> <!-- IntentionalElement --> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- ActorRef --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="ActorRef"> <xsd:complexContent> <xsd:extension base="GRLmodelElement"> <xsd:sequence> <xsd:element name="label" type="Label"/> <xsd:element name="actorDef" type="xsd:IDREF"/> <!-- Actor --> <xsd:element maxOccurs="unbounded" minOccurs="0" name="nodes" type="xsd:IDREF"/> <!-- GRLNode --> <xsd:element name="pos" type="Position"/> <xsd:element name="size" type="Size"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- AndFork --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="AndFork"> <xsd:complexContent> <xsd:extension base="PathNode"/> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- AndJoin --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="AndJoin"> <xsd:complexContent> <xsd:extension base="PathNode"/> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- ClosedWorkload --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="ClosedWorkload"> <xsd:complexContent> <xsd:extension base="Workload"> <xsd:sequence> <xsd:element name="population" type="xsd:string"/> <xsd:element name="externalDelay" type="xsd:string"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- CollapsedActorRef --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="CollapsedActorRef"> <xsd:complexContent> <xsd:extension base="GRLNode"> <xsd:sequence> <xsd:element name="actor" type="xsd:IDREF"/> <!-- Actor --> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- Comment --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="Comment"> <xsd:sequence> <xsd:element name="description" type="xsd:string"/> <xsd:element name="x" type="xsd:integer"/> <xsd:element name="y" type="xsd:integer"/> <xsd:element name="width" type="xsd:integer"/> <xsd:element name="height" type="xsd:integer"/> <xsd:element name="fillColor" type="xsd:string"/> </xsd:sequence> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- Component --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="Component"> <xsd:complexContent> <xsd:extension base="UCMmodelElement"> <xsd:sequence> <xsd:element name="kind" type="ComponentKind"/> <xsd:element name="protected" type="xsd:boolean"/> <xsd:element name="context" type="xsd:boolean"/> <xsd:element minOccurs="0" name="type" type="xsd:IDREF"/> <!-- ComponentType --> <xsd:element maxOccurs="unbounded" minOccurs="0" name="includedComponents" type="xsd:IDREF"/> <!-- Component --> <xsd:element maxOccurs="unbounded" minOccurs="0" name="includingComponents" type="xsd:IDREF"/> <!-- Component --> <xsd:element minOccurs="0" name="host" type="xsd:IDREF"/> <!-- ProcessingResource --> <xsd:element minOccurs="0" name="resource" type="xsd:IDREF"/> <!-- PassiveResource --> <xsd:element maxOccurs="unbounded" minOccurs="0" name="compRefs" type="xsd:IDREF"/> <!-- ComponentRef --> <xsd:element minOccurs="0" name="style" type="ConcreteStyle"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- ComponentBinding --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="ComponentBinding"> <xsd:sequence> <xsd:element name="id" type="xsd:ID" /> <!-- ADDED because ComponentBinding is not a URNmodelElement (no ID) --> <xsd:element name="parentComponent" type="xsd:IDREF"/> <!-- ComponentRef --> <xsd:element name="pluginComponent" type="xsd:IDREF"/> <!-- ComponentRef --> </xsd:sequence> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- ComponentRef --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="ComponentRef"> <xsd:complexContent> <xsd:extension base="UCMmodelElement"> <xsd:sequence> <xsd:element maxOccurs="unbounded" minOccurs="0" name="parentBindings" type="xsd:IDREF"/> <!-- ComponentBinding --> <xsd:element maxOccurs="unbounded" minOccurs="0" name="pluginBindings" type="xsd:IDREF"/> <!-- ComponentBinding --> <xsd:element name="compDef" type="xsd:IDREF"/> <!-- Component --> <xsd:element minOccurs="0" name="label" type="Label"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="children" type="xsd:IDREF"/> <!-- ComponentRef --> <xsd:element minOccurs="0" name="parent" type="xsd:IDREF"/> <!-- ComponentRef --> <xsd:element maxOccurs="unbounded" minOccurs="0" name="nodes" type="xsd:IDREF"/> <!-- PathNode --> <xsd:element minOccurs="0" name="pos" type="Position"/> <xsd:element minOccurs="0" name="size" type="Size"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- ComponentType --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="ComponentType"> <xsd:complexContent> <xsd:extension base="UCMmodelElement"> <xsd:sequence> <xsd:element maxOccurs="unbounded" minOccurs="0" name="instances" type="xsd:IDREF"/> <!-- Component --> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- Concern --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="Concern"> <xsd:complexContent> <xsd:extension base="URNmodelElement"> <xsd:sequence> <xsd:element minOccurs="0" name="condition" type="Condition"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="elements" type="xsd:IDREF"/> <!-- URNmodelElement --> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- ConcreteCondition --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="ConcreteCondition"> <xsd:sequence> <xsd:element name="label" type="xsd:string"/> <xsd:element name="description" type="xsd:string"/> </xsd:sequence> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- ConcreteGRLspec --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="ConcreteGRLspec"> <xsd:sequence> <xsd:element name="showAsMeansEnd" type="xsd:boolean"/> </xsd:sequence> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- ConcreteStyle --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="ConcreteStyle"> <xsd:sequence> <xsd:element name="lineColor" type="xsd:string"/> <xsd:element name="fillColor" type="xsd:string"/> <xsd:element name="filled" type="xsd:boolean"/> </xsd:sequence> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- ConcreteURNspec --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="ConcreteURNspec"> <xsd:sequence> <xsd:element name="description" type="xsd:string"/> <xsd:element name="author" type="xsd:string"/> <xsd:element name="created" type="xsd:string"/> <xsd:element name="modified" type="xsd:string"/> <xsd:element name="specVersion" type="xsd:string"/> <xsd:element name="urnVersion" type="xsd:string"/> </xsd:sequence> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- Condition --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="Condition"> <xsd:sequence> <xsd:element name="expression" type="xsd:string"/> <xsd:element minOccurs="0" name="desc" type="ConcreteCondition"/> <xsd:element minOccurs="0" name="label" type="Label"/> </xsd:sequence> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- Connect --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="Connect"> <xsd:complexContent> <xsd:extension base="PathNode"/> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- Contribution --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="Contribution"> <xsd:complexContent> <xsd:extension base="ElementLink"> <xsd:sequence> <xsd:element default="Unknown" name="contribution" type="ContributionType"/> <xsd:element name="quantitativeContribution" type="xsd:integer"/> <xsd:element name="correlation" type="xsd:boolean"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- Decomposition --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="Decomposition"> <xsd:complexContent> <xsd:extension base="ElementLink"/> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- Demand --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="Demand"> <xsd:sequence> <xsd:element name="quantity" type="xsd:string"/> <xsd:element name="resource" type="xsd:IDREF"/> <!-- ExternalOperation --> </xsd:sequence> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- Dependency --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="Dependency"> <xsd:complexContent> <xsd:extension base="ElementLink"/> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- Description --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="Description"> <xsd:sequence> <xsd:element name="description" type="xsd:string"/> </xsd:sequence> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- DirectionArrow --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="DirectionArrow"> <xsd:complexContent> <xsd:extension base="PathNode"/> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- ElementLink --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="ElementLink"> <xsd:complexContent> <xsd:extension base="GRLmodelElement"> <xsd:sequence> <xsd:element maxOccurs="unbounded" minOccurs="0" name="refs" type="xsd:IDREF"/> <!-- LinkRef --> <xsd:element name="dest" type="xsd:IDREF"/> <!-- GRLLinkableElement --> <xsd:element name="src" type="xsd:IDREF"/> <!-- GRLLinkableElement --> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- EmptyPoint --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="EmptyPoint"> <xsd:complexContent> <xsd:extension base="PathNode"/> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- EndPoint --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="EndPoint"> <xsd:complexContent> <xsd:extension base="PathNode"> <xsd:sequence> <xsd:element maxOccurs="unbounded" minOccurs="0" name="outBindings" type="xsd:IDREF"/> <!-- OutBinding --> <xsd:element minOccurs="0" name="postcondition" type="Condition"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- EnumerationType --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="EnumerationType"> <xsd:complexContent> <xsd:extension base="UCMmodelElement"> <xsd:sequence> <xsd:element name="values" type="xsd:string"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="instances" type="xsd:IDREF"/> <!-- Variable --> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- Evaluation --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="Evaluation"> <xsd:sequence> <xsd:element name="evaluation" type="xsd:integer"/> <xsd:element default="None" name="qualitativeEvaluation" type="QualitativeLabel"/> <xsd:element name="intElement" type="xsd:IDREF"/> <!-- IntentionalElement --> </xsd:sequence> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- EvaluationStrategy --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="EvaluationStrategy"> <xsd:complexContent> <xsd:extension base="GRLmodelElement"> <xsd:sequence> <xsd:element maxOccurs="unbounded" minOccurs="0" name="evaluations" type="Evaluation"/> <xsd:element maxOccurs="unbounded" name="group" type="xsd:IDREF"/> <!-- StrategiesGroup --> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- ExternalOperation --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="ExternalOperation"> <xsd:complexContent> <xsd:extension base="ActiveResource"> <xsd:sequence> <xsd:element maxOccurs="unbounded" minOccurs="0" name="demands" type="xsd:IDREF"/> <!-- Demand --> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- GeneralResource --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="GeneralResource"> <xsd:complexContent> <xsd:extension base="UCMmodelElement"> <xsd:sequence> <xsd:element default="1" name="multiplicity" type="xsd:nonNegativeInteger"/> <xsd:element name="schedPolicy" type="xsd:string"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- GRLGraph --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="GRLGraph"> <xsd:complexContent> <xsd:extension base="GRLmodelElement"> <xsd:sequence> <xsd:element maxOccurs="unbounded" minOccurs="0" name="connections" type="LinkRef"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="nodes" type="GRLNode"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="contRefs" type="ActorRef"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="comments" type="Comment"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- GRLLinkableElement --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="GRLLinkableElement"> <xsd:complexContent> <xsd:extension base="GRLmodelElement"> <xsd:sequence> <xsd:element maxOccurs="unbounded" minOccurs="0" name="linksDest" type="xsd:IDREF"/> <!-- ElementLink --> <xsd:element maxOccurs="unbounded" minOccurs="0" name="linksSrc" type="xsd:IDREF"/> <!-- ElementLink --> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- GRLmodelElement --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="GRLmodelElement"> <xsd:complexContent> <xsd:extension base="URNmodelElement"/> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- GRLNode --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="GRLNode"> <xsd:complexContent> <xsd:extension base="GRLmodelElement"> <xsd:sequence> <xsd:element maxOccurs="unbounded" minOccurs="0" name="pred" type="xsd:IDREF"/> <!-- LinkRef --> <xsd:element maxOccurs="unbounded" minOccurs="0" name="succ" type="xsd:IDREF"/> <!-- LinkRef --> <xsd:element minOccurs="0" name="contRef" type="xsd:IDREF"/> <!-- ActorRef --> <xsd:element name="pos" type="Position"/> <xsd:element name="size" type="Size"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- GRLspec --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="GRLspec"> <xsd:sequence> <xsd:element maxOccurs="unbounded" minOccurs="0" name="intElements" type="IntentionalElement"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="actors" type="Actor"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="links" type="ElementLink"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="groups" type="StrategiesGroup"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="strategies" type="EvaluationStrategy"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="grlGraphs" type="GRLGraph"/> <xsd:element minOccurs="0" name="info" type="ConcreteGRLspec"/> </xsd:sequence> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- InBinding --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="InBinding"> <xsd:sequence> <xsd:element name="id" type="xsd:ID" /> <!-- ADDED because InBinding is not a URNmodelElement (no ID) --> <xsd:element name="startPoint" type="xsd:IDREF"/> <!-- StartPoint --> <xsd:element name="stubEntry" type="xsd:IDREF"/> <!-- NodeConnection --> </xsd:sequence> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- Initialization --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="Initialization"> <xsd:sequence> <xsd:element name="value" type="xsd:string"/> <xsd:element name="variable" type="xsd:IDREF"/> <!-- Variable --> </xsd:sequence> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- IntentionalElement --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="IntentionalElement"> <xsd:complexContent> <xsd:extension base="GRLLinkableElement"> <xsd:sequence> <xsd:element name="type" type="IntentionalElementType"/> <xsd:element default="AND" name="decompositionType" type="DecompositionType"/> <xsd:element default="None" name="importance" type="ImportanceType"/> <xsd:element name="importanceQuantitative" type="xsd:integer"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="refs" type="xsd:IDREF"/> <!-- IntentionalElementRef --> <xsd:element minOccurs="0" name="style" type="ConcreteStyle"/> <xsd:element minOccurs="0" name="actor" type="xsd:IDREF"/> <!-- Actor --> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- IntentionalElementRef --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="IntentionalElementRef"> <xsd:complexContent> <xsd:extension base="GRLNode"> <xsd:sequence> <xsd:element name="def" type="xsd:IDREF"/> <!-- IntentionalElement --> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- Label --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="Label"> <xsd:sequence> <xsd:element name="deltaX" type="xsd:integer"/> <xsd:element name="deltaY" type="xsd:integer"/> </xsd:sequence> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- LinkRef --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="LinkRef"> <xsd:complexContent> <xsd:extension base="GRLmodelElement"> <xsd:sequence> <xsd:element name="curve" type="xsd:boolean"/> <xsd:element name="link" type="xsd:IDREF"/> <!-- ElementLink --> <xsd:element maxOccurs="unbounded" minOccurs="0" name="bendpoints" type="LinkRefBendpoint"/> <!-- {ordered} --> <xsd:element minOccurs="0" name="label" type="Label"/> <xsd:element name="target" type="xsd:IDREF"/> <!-- GRLNode --> <xsd:element name="source" type="xsd:IDREF"/> <!-- GRLNode --> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- LinkRefBendpoint --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="LinkRefBendpoint"> <xsd:sequence> <xsd:element name="x" type="xsd:integer"/> <xsd:element name="y" type="xsd:integer"/> </xsd:sequence> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- Metadata --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="Metadata"> <xsd:sequence> <xsd:element name="name" type="xsd:string"/> <xsd:element name="value" type="xsd:string"/> </xsd:sequence> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- NodeConnection --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="NodeConnection"> <xsd:sequence> <xsd:element name="id" type="xsd:ID"/> <!-- ADDED because NodeConnection is not a URNmodelElement (no ID) --> <xsd:element default="100" name="probability" type="xsd:nonNegativeInteger"/> <xsd:element name="threshold" type="xsd:string"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="inBindings" type="xsd:IDREF"/> <!-- InBinding --> <xsd:element maxOccurs="unbounded" minOccurs="0" name="outBindings" type="xsd:IDREF"/> <!-- OutBinding --> <xsd:element minOccurs="0" name="condition" type="Condition"/> <xsd:element minOccurs="0" name="timer" type="xsd:IDREF"/> <!-- Timer --> <xsd:element minOccurs="0" name="label" type="Label"/> <xsd:element name="target" type="xsd:IDREF"/> <!-- PathNode --> <xsd:element name="source" type="xsd:IDREF"/> <!-- PathNode --> </xsd:sequence> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- OWPeriodic --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="OWPeriodic"> <xsd:complexContent> <xsd:extension base="OpenWorkload"> <xsd:sequence> <xsd:element name="period" type="xsd:string"/> <xsd:element name="deviation" type="xsd:string"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- OWPhaseType --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="OWPhaseType"> <xsd:complexContent> <xsd:extension base="OpenWorkload"> <xsd:sequence> <xsd:element name="alpha" type="xsd:string"/> <xsd:element name="s" type="xsd:string"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- OWPoisson --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="OWPoisson"> <xsd:complexContent> <xsd:extension base="OpenWorkload"> <xsd:sequence> <xsd:element name="mean" type="xsd:string"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- OWUniform --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="OWUniform"> <xsd:complexContent> <xsd:extension base="OpenWorkload"> <xsd:sequence> <xsd:element name="start" type="xsd:string"/> <xsd:element name="end" type="xsd:string"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- OpenWorkload --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="OpenWorkload"> <xsd:complexContent> <xsd:extension base="Workload"/> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- OrFork --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="OrFork"> <xsd:complexContent> <xsd:extension base="PathNode"/> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- OrJoin --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="OrJoin"> <xsd:complexContent> <xsd:extension base="PathNode"/> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- OutBinding --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="OutBinding"> <xsd:sequence> <xsd:element name="id" type="xsd:ID" /> <!-- ADDED because OutBinding is not a URNmodelElement (no ID) --> <xsd:element name="endPoint" type="xsd:IDREF"/> <!-- EndPoint --> <xsd:element name="stubExit" type="xsd:IDREF"/> <!-- NodeConnection --> </xsd:sequence> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- PassiveResource --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="PassiveResource"> <xsd:complexContent> <xsd:extension base="GeneralResource"> <xsd:sequence> <xsd:element minOccurs="0" name="component" type="xsd:IDREF"/> <!-- Component --> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- PathNode --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="PathNode"> <xsd:complexContent> <xsd:extension base="UCMmodelElement"> <xsd:sequence> <xsd:element minOccurs="0" name="label" type="Label"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="pred" type="xsd:IDREF"/> <!-- NodeConnection --> <xsd:element maxOccurs="unbounded" minOccurs="0" name="succ" type="xsd:IDREF"/> <!-- NodeConnection --> <xsd:element minOccurs="0" name="contRef" type="xsd:IDREF"/> <!-- ComponentRef --> <xsd:element minOccurs="0" name="pos" type="Position"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- PluginBinding --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="PluginBinding"> <xsd:sequence> <xsd:element name="id" type="xsd:ID"/> <!-- ADDED because PluginBinding is not a URNmodelElement (no ID) --> <xsd:element default="100" name="probability" type="xsd:nonNegativeInteger"/> <xsd:element name="replicationFactor" type="xsd:string"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="in" type="InBinding"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="out" type="OutBinding"/> <xsd:element name="plugin" type="xsd:IDREF"/> <!-- UCMmap --> <xsd:element minOccurs="0" name="precondition" type="Condition"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="components" type="ComponentBinding"/> </xsd:sequence> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- Position --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="Position"> <xsd:sequence> <xsd:element name="x" type="xsd:integer"/> <xsd:element name="y" type="xsd:integer"/> </xsd:sequence> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- ProcessingResource --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="ProcessingResource"> <xsd:complexContent> <xsd:extension base="ActiveResource"> <xsd:sequence> <xsd:element default="Processor" name="kind" type="DeviceKind"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="components" type="xsd:IDREF"/> <!-- Component --> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- Responsibility --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="Responsibility"> <xsd:complexContent> <xsd:extension base="UCMmodelElement"> <xsd:sequence> <xsd:element name="expression" type="xsd:string"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="demands" type="Demand"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="respRefs" type="xsd:IDREF"/> <!-- RespRef --> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- RespRef --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="RespRef"> <xsd:complexContent> <xsd:extension base="PathNode"> <xsd:sequence> <xsd:element name="repetitionCount" type="xsd:string"/> <xsd:element name="hostDemand" type="xsd:string"/> <xsd:element name="respDef" type="xsd:IDREF"/> <!-- Responsibility --> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- ScenarioDef --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="ScenarioDef"> <xsd:complexContent> <xsd:extension base="UCMmodelElement"> <xsd:sequence> <xsd:element maxOccurs="unbounded" minOccurs="0" name="initializations" type="Initialization"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="postconditions" type="Condition"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="preconditions" type="Condition"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="parentScenarios" type="xsd:IDREF"/> <!-- ScenarioDef --> <xsd:element minOccurs="0" name="includedScenarios" type="xsd:IDREFS"/> <!-- ScenarioDef {ordered} --> <xsd:element maxOccurs="unbounded" name="groups" type="xsd:IDREF"/> <!-- ScenarioGroup --> <xsd:element minOccurs="0" name="startPoints" type="xsd:IDREFS"/> <!-- StartPoint {ordered} --> <xsd:element maxOccurs="unbounded" minOccurs="0" name="endPoints" type="xsd:IDREF"/> <!-- EndPoint --> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- ScenarioGroup --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="ScenarioGroup"> <xsd:complexContent> <xsd:extension base="UCMmodelElement"> <xsd:sequence> <xsd:element maxOccurs="unbounded" minOccurs="0" name="scenarios" type="xsd:IDREF"/> <!-- ScenarioDef --> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- Size --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="Size"> <xsd:sequence> <xsd:element name="width" type="xsd:integer"/> <xsd:element name="height" type="xsd:integer"/> </xsd:sequence> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- StartPoint --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="StartPoint"> <xsd:complexContent> <xsd:extension base="PathNode"> <xsd:sequence> <xsd:element minOccurs="0" name="workload" type="Workload"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="inBindings" type="xsd:IDREF"/> <!-- InBinding --> <xsd:element minOccurs="0" name="precondition" type="Condition"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- StrategiesGroup --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="StrategiesGroup"> <xsd:complexContent> <xsd:extension base="GRLmodelElement"> <xsd:sequence> <xsd:element maxOccurs="unbounded" minOccurs="0" name="strategies" type="xsd:IDREF"/> <!-- EvaluationStrategy --> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- Stub --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="Stub"> <xsd:complexContent> <xsd:extension base="PathNode"> <xsd:sequence> <xsd:element name="dynamic" type="xsd:boolean"/> <xsd:element name="synchronizing" type="xsd:boolean"/> <xsd:element name="blocking" type="xsd:boolean"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="bindings" type="PluginBinding"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- Timer --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="Timer"> <xsd:complexContent> <xsd:extension base="WaitingPlace"> <xsd:sequence> <xsd:element minOccurs="0" name="timeoutPath" type="xsd:IDREF"/> <!-- NodeConnection --> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- UCMmap --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="UCMmap"> <xsd:complexContent> <xsd:extension base="UCMmodelElement"> <xsd:sequence> <xsd:element name="singleton" type="xsd:boolean"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="parentStub" type="xsd:IDREF"/> <!-- PluginBinding --> <xsd:element maxOccurs="unbounded" minOccurs="0" name="contRefs" type="ComponentRef"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="connections" type="NodeConnection"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="nodes" type="PathNode"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="comments" type="Comment"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- UCMmodelElement --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="UCMmodelElement"> <xsd:complexContent> <xsd:extension base="URNmodelElement"/> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- UCMspec --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="UCMspec"> <xsd:sequence> <xsd:element maxOccurs="unbounded" minOccurs="0" name="enumerationTypes" type="EnumerationType"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="variables" type="Variable"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="scenarioGroups" type="ScenarioGroup"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="resources" type="GeneralResource"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="ucmMaps" type="UCMmap"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="components" type="Component"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="componentTypes" type="ComponentType"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="responsibilities" type="Responsibility"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="scenarioDefs" type="ScenarioDef"/> </xsd:sequence> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- URNlink --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="URNlink"> <xsd:complexContent> <xsd:extension base="URNmodelElement"> <xsd:sequence> <xsd:element name="type" type="xsd:string"/> <xsd:element name="toElem" type="xsd:IDREF"/> <!-- URNmodelElement --> <xsd:element name="fromElem" type="xsd:IDREF"/> <!-- URNmodelElement --> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- URNmodelElement --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="URNmodelElement"> <xsd:sequence> <xsd:element name="id" type="xsd:ID"/> <xsd:element name="name" type="xsd:string"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="metadata" type="Metadata"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="toLinks" type="xsd:IDREF"/> <!-- URNlink --> <xsd:element maxOccurs="unbounded" minOccurs="0" name="fromLinks" type="xsd:IDREF"/> <!-- URNlink --> <xsd:element minOccurs="0" name="desc" type="Description"/> <xsd:element minOccurs="0" name="concern" type="xsd:IDREF"/> <!-- Concern --> </xsd:sequence> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- URNspec --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="URNspec"> <xsd:sequence> <xsd:element name="name" type="xsd:string"/> <xsd:element minOccurs="0" name="ucmspec" type="UCMspec"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="metadata" type="Metadata"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="urnLinks" type="URNlink"/> <xsd:element minOccurs="0" name="grlspec" type="GRLspec"/> <xsd:element minOccurs="0" name="info" type="ConcreteURNspec"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="concerns" type="Concern"/> </xsd:sequence> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- Variable --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="Variable"> <xsd:complexContent> <xsd:extension base="UCMmodelElement"> <xsd:sequence> <xsd:element default="Boolean" name="type" type="DatatypeKind"/> <xsd:element minOccurs="0" name="enumerationType" type="xsd:IDREF"/> <!-- EnumerationType --> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- WaitingPlace --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="WaitingPlace"> <xsd:complexContent> <xsd:extension base="PathNode"> <xsd:sequence> <xsd:element name="waitType" type="WaitKind"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- Workload --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="Workload"> <xsd:complexContent> <xsd:extension base="UCMmodelElement"> <xsd:sequence> <xsd:element default="ms" name="unit" type="TimeUnit"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> </xsd:schema>